# setwd("~/My.Backtest/3.Option.Expiry")
options(digits=4)
require(ggplot2)
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 3.2.4
# source("C:/Users/Daniel.yang/Documents/R folder/backtest/functions.R")
source("../../../functions.R")
## Loading required package: reshape2
## Loading required package: grid
## Loading required package: gridExtra
## Warning: package 'gridExtra' was built under R version 3.2.4
file <- "./Equity.Index.csv"
ticker.file <- "./tickers.csv"
price <- load.factset.datadownloading(file, ticker.file)
ret <- log(price) - log(delay(price))
dates <- as.Date(rownames(price))
exp.dates <- spx.option.expiry.date(dates)
exp.dates <- exp.dates[exp.dates >= dates[1] & exp.dates <= tail(dates, 1)]
flag_event <- (rownames(price) %in% as.character(exp.dates))
pos_event <- which(flag_event)

agg.port <- ret
agg.port[] <- 0

ticker <- "TOPIX"
l_back <- -3
l_forward <- 3
s_back <- -7
s_forward <- -6
source("./show.pnl.script.R")
## [1] "hit ratio is 52.66%"
##    year    pnl
## 1  2006  73.42
## 2  2007 228.64
## 3  2008 227.79
## 4  2009  89.45
## 5  2010 -51.21
## 6  2011  59.01
## 7  2012 144.12
## 8  2013 194.98
## 9  2014 301.84
## 10 2015 -46.72
## 11 2016 280.78

ticker <- "Nikkei225"
l_back <- -3
l_forward <- 3
s_back <- -7
s_forward <- -6
source("./show.pnl.script.R")
## [1] "hit ratio is 54.61%"
##    year    pnl
## 1  2006  922.4
## 2  2007 1820.2
## 3  2008 2600.2
## 4  2009 1113.9
## 5  2010 -634.8
## 6  2011  603.5
## 7  2012 1976.1
## 8  2013 3312.6
## 9  2014 4026.7
## 10 2015 -252.0
## 11 2016 3608.4

ticker <- "KOSPI200"
l_back <- -3
l_forward <- -3
s_back <- 4
s_forward <- 5
source("./show.pnl.script.R")
## [1] "hit ratio is 56.57%"
##    year    pnl
## 1  2006  7.673
## 2  2007 11.301
## 3  2008 37.722
## 4  2009 29.743
## 5  2010  9.665
## 6  2011 18.955
## 7  2012 -1.879
## 8  2013 -5.795
## 9  2014 18.017
## 10 2015 19.616
## 11 2016  3.924

ticker <- "MSCI_Taiwan"
s_back <- -7
s_forward <- -4
l_back <- 0
l_forward <- 3
source("./show.pnl.script.R")
## [1] "hit ratio is 52.79%"
##    year     pnl
## 1  2006  18.965
## 2  2007 130.561
## 3  2008 -20.997
## 4  2009  58.179
## 5  2010 -34.037
## 6  2011  66.616
## 7  2012   9.331
## 8  2013   7.808
## 9  2014  46.233
## 10 2015  15.884
## 11 2016  -7.494

ticker <- "TAIEX"
s_back <- -7
s_forward <- -4
l_back <- 0
l_forward <- 3
source("./show.pnl.script.R")
## [1] "hit ratio is 53.25%"
##    year     pnl
## 1  2006  482.41
## 2  2007 3272.76
## 3  2008 -459.62
## 4  2009 1206.68
## 5  2010 -870.79
## 6  2011 1675.17
## 7  2012  183.94
## 8  2013  178.50
## 9  2014 1324.78
## 10 2015  296.20
## 11 2016   85.37

ticker <- "ASX200"
s_back <- -7
s_forward <- -4
l_back <- -3
l_forward <- 3
source("./show.pnl.script.R")
## [1] "hit ratio is 54.49%"
##    year      pnl
## 1  2006  511.516
## 2  2007 1327.744
## 3  2008  912.737
## 4  2009   -1.589
## 5  2010 -596.068
## 6  2011  138.917
## 7  2012   88.748
## 8  2013  178.599
## 9  2014 1043.255
## 10 2015  773.448
## 11 2016  653.338

ticker <- "HSI"
s_back <- -4
s_forward <- -4
l_back <- NULL
l_forward <- NULL
source("./show.pnl.script.R")
## [1] "hit ratio is 60.18%"
##    year      pnl
## 1  2006  -107.41
## 2  2007   206.32
## 3  2008  1921.37
## 4  2009   -52.91
## 5  2010   301.66
## 6  2011  4004.56
## 7  2012 -1150.63
## 8  2013    42.53
## 9  2014   734.20
## 10 2015  1394.19
## 11 2016  -390.81

ticker <- "HSCEI"
s_back <- -4
s_forward <- -4
l_back <- NULL
l_forward <- NULL
source("./show.pnl.script.R")
## [1] "hit ratio is 54.87%"
##    year      pnl
## 1  2006  -51.198
## 2  2007   10.967
## 3  2008 1499.972
## 4  2009  185.721
## 5  2010  226.617
## 6  2011 2255.430
## 7  2012 -476.362
## 8  2013    7.485
## 9  2014  389.957
## 10 2015 1211.374
## 11 2016 -276.902

ticker <- "IBOVESPA"
s_back <- 5
s_forward <- 5
l_back <- NULL
l_forward <- NULL
source("./show.pnl.script.R")
## [1] "hit ratio is 58.33%"
##    year    pnl
## 1  2006 -520.6
## 2  2007 3042.2
## 3  2008 6517.0
## 4  2009 3613.3
## 5  2010  797.9
## 6  2011  798.3
## 7  2012 1119.2
## 8  2013 3109.5
## 9  2014 5665.2
## 10 2015 4683.4
## 11 2016  733.4

# ticker <- "STOXX"
# s_back <- 5
# s_forward <- 5
# l_back <- 1
# l_forward <- 3
# source("./show.pnl.script.R")


ticker <- "FTSE100"
s_back <- 5
s_forward <- 5
l_back <- -1
l_forward <- 4
source("./show.pnl.script.R")
## [1] "hit ratio is 52.96%"
##    year     pnl
## 1  2006   77.45
## 2  2007  151.65
## 3  2008  766.20
## 4  2009  451.40
## 5  2010 -267.94
## 6  2011  221.13
## 7  2012 -316.15
## 8  2013  444.52
## 9  2014  482.32
## 10 2015  587.70
## 11 2016  547.63

ticker <- "DAX"
s_back <- 5
s_forward <- 5
l_back <- 1
l_forward <- 1
source("./show.pnl.script.R")
## [1] "hit ratio is 53.12%"
##    year     pnl
## 1  2006 -107.72
## 2  2007  282.26
## 3  2008   42.39
## 4  2009  134.58
## 5  2010 -166.95
## 6  2011  209.14
## 7  2012 -159.48
## 8  2013  128.78
## 9  2014  975.37
## 10 2015  686.76
## 11 2016  649.89

ticker <- "CAC40"
s_back <- 5
s_forward <- 5
l_back <- 1
l_forward <- 1
source("./show.pnl.script.R")
## [1] "hit ratio is 52.42%"
##    year       pnl
## 1  2006  -16.8304
## 2  2007  142.0861
## 3  2008  232.4655
## 4  2009   58.4485
## 5  2010 -140.4967
## 6  2011   -0.4166
## 7  2012   64.2504
## 8  2013   54.4473
## 9  2014  373.5772
## 10 2015  471.9652
## 11 2016  230.8156

ticker <- "AEX"
s_back <- 5
s_forward <- 5
l_back <- 1
l_forward <- 1
source("./show.pnl.script.R")
## [1] "hit ratio is 52%"
##    year      pnl
## 1  2006  -3.9666
## 2  2007  19.5212
## 3  2008  33.3910
## 4  2009   9.8225
## 5  2010 -18.0880
## 6  2011  -0.8552
## 7  2012  -8.2836
## 8  2013   3.9413
## 9  2014  27.1205
## 10 2015  40.5090
## 11 2016  25.1716

ticker <- "OBX"
s_back <- 5
s_forward <- 5
l_back <- 1
l_forward <- 1
source("./show.pnl.script.R")
## [1] "hit ratio is 53.36%"
##    year      pnl
## 1  2006  31.6189
## 2  2007   6.5407
## 3  2008  68.6627
## 4  2009  33.0004
## 5  2010 -36.4669
## 6  2011   8.4533
## 7  2012  -0.4387
## 8  2013  14.4021
## 9  2014  26.0630
## 10 2015  43.6656
## 11 2016  33.7771

ticker <- "SP500"
s_back <- 5
s_forward <- 5
l_back <- -4
l_forward <- 0
source("./show.pnl.script.R")
## [1] "hit ratio is 57.49%"
##    year     pnl
## 1  2006   81.88
## 2  2007  180.00
## 3  2008   88.10
## 4  2009   84.27
## 5  2010   61.40
## 6  2011 -171.29
## 7  2012   87.51
## 8  2013   63.74
## 9  2014  284.24
## 10 2015   74.99
## 11 2016  212.25

ticker <- "VX00"
s_back <- 0
s_forward <- 0
l_back <- 5
l_forward <- 5
source("./show.pnl.script.R")
## [1] "hit ratio is 61.65%"
##    year    pnl
## 1  2006  1.013
## 2  2007  7.196
## 3  2008 18.144
## 4  2009  2.799
## 5  2010  4.548
## 6  2011 -4.060
## 7  2012  8.233
## 8  2013  1.975
## 9  2014  6.009
## 10 2015  7.875
## 11 2016  7.425

ticker <- "SPGSCI_Gold"
s_back <- 2
s_forward <- 2
l_back <- -3
l_forward <- 1
source("./show.pnl.script.R")
## [1] "hit ratio is 56.8%"
##    year    pnl
## 1  2006 -25.17
## 2  2007  30.95
## 3  2008 120.46
## 4  2009 -15.70
## 5  2010  12.86
## 6  2011 127.94
## 7  2012  31.71
## 8  2013  64.04
## 9  2014  25.33
## 10 2015 112.86
## 11 2016 -13.15

ticker <- "VSTOXX"
s_back <- 1
s_forward <- 1
l_back <- -1
l_forward <- -1
source("./show.pnl.script.R")
## [1] "hit ratio is 60.13%"
##    year     pnl
## 1  2006  0.0000
## 2  2007  0.0000
## 3  2008  0.0000
## 4  2009  0.8790
## 5  2010  8.2729
## 6  2011 10.3782
## 7  2012 15.7466
## 8  2013  0.5662
## 9  2014  0.2462
## 10 2015  4.5740
## 11 2016  1.5996

plot <- show.pnl.gg(agg.port, ret, "aggregated portfolio", yearly.pnl=TRUE)
##    year   pnl
## 1  2006  1376
## 2  2007 10871
## 3  2008 14606
## 4  2009  7002
## 5  2010 -1394
## 6  2011 10021
## 7  2012  1616
## 8  2013  7803
## 9  2014 15750
## 10 2015 10126
## 11 2016  6385